6
תגובות
אהלן .
בניתי איזה פונקציה קטנה של קבצי עיצוב שעובדת על MVC (כלומר בקובץ אין משתנים אלא דברים כאלו {{var4}} )
אבל יש בפונקציה הזו חיסרון אחד . היא לא יכולה לקרוא משתנים מבחוץ כמו של MYSQLI או משהו כזה . אלא רק מה שאני מגדיר כפרמטר בפונקציה .
הינה הקוד :
אם מישהו יודע אולי דרכים כדי שהפונקציה הזו תהיה יותר גמישה ונוחה שיכתוב כאן ..
(הפונקציה הזו היא חלק ממחלקה של העיצוב .לפני ששמתי אותה במחלקה כלומר לכל חלק עיצוב באתר כתבתי את כל הקוד הזה , היא שלחה לדף כל משתנה שנוצר בעמוד . אני רוצה לעשות אותו הדבר - שישלח את כל המשתנים בעמוד לMVC . מקווה שאני ברור ... )
תודה
בניתי איזה פונקציה קטנה של קבצי עיצוב שעובדת על MVC (כלומר בקובץ אין משתנים אלא דברים כאלו {{var4}} )
אבל יש בפונקציה הזו חיסרון אחד . היא לא יכולה לקרוא משתנים מבחוץ כמו של MYSQLI או משהו כזה . אלא רק מה שאני מגדיר כפרמטר בפונקציה .
הינה הקוד :
static function including($file,$var ="" , $var1 = "", $var2 = "" , $var3 = "" , $var4 = "", $var5 = "", $var6 = "", $var7 = "", $var8 = "", $var9 = "", $var10 = "")
{
$file_path = 'system/template/'.$file.'.tpl';
if(file_exists($file_path))
{
$file = file_get_contents($file_path);
preg_match_all('@{{([^{{}}]*)}}@', $file, $matches);
if ( count($matches[1]) > 0 )
{
$trimedValue = '';
foreach ( $matches[1] as $arg )
{
$trimedValue = trim($arg);
$file = preg_replace('@\{\{' . $arg . '\}\}@', $$trimedValue, $file);
}
return $file;
}else return $file;
}else return "The File '$file' Doesnt Exists... (FilePath : '$file_path')";
}
{
$file_path = 'system/template/'.$file.'.tpl';
if(file_exists($file_path))
{
$file = file_get_contents($file_path);
preg_match_all('@{{([^{{}}]*)}}@', $file, $matches);
if ( count($matches[1]) > 0 )
{
$trimedValue = '';
foreach ( $matches[1] as $arg )
{
$trimedValue = trim($arg);
$file = preg_replace('@\{\{' . $arg . '\}\}@', $$trimedValue, $file);
}
return $file;
}else return $file;
}else return "The File '$file' Doesnt Exists... (FilePath : '$file_path')";
}
אם מישהו יודע אולי דרכים כדי שהפונקציה הזו תהיה יותר גמישה ונוחה שיכתוב כאן ..
(הפונקציה הזו היא חלק ממחלקה של העיצוב .לפני ששמתי אותה במחלקה כלומר לכל חלק עיצוב באתר כתבתי את כל הקוד הזה , היא שלחה לדף כל משתנה שנוצר בעמוד . אני רוצה לעשות אותו הדבר - שישלח את כל המשתנים בעמוד לMVC . מקווה שאני ברור ... )
תודה
6 תשובות
לא משנה הסתדרתי ...
הינה הקוד שאני עובד איתו עכשיו :
static function template( $model, $params = array() )
{
$model = 'system/template/'.$model.'.tpl';
if(!file_exists($model) || !is_readable($model))
{
return "Error: failed to load the template $model";
}
$model = file_get_contents($model);
$keys = array_keys($params);
for( $i = 0; $i < sizeof($keys); $i++)
$keys[$i] = '[{{'.$keys[$i].'}}]';
return preg_replace( $keys, $params, $model);
}
{
$model = 'system/template/'.$model.'.tpl';
if(!file_exists($model) || !is_readable($model))
{
return "Error: failed to load the template $model";
}
$model = file_get_contents($model);
$keys = array_keys($params);
for( $i = 0; $i < sizeof($keys); $i++)
$keys[$i] = '[{{'.$keys[$i].'}}]';
return preg_replace( $keys, $params, $model);
}
ושימוש הוא כזה :
$data = Array( 'time' => date("d/m/y H:i:s"));
echo style::template("test",$data);
echo style::template("test",$data);
אתה צריך להתאמן על שמות טובים יותר (אינפורמטיבים יותר) לפונקציות,
דבר שני, תוותר על העניין הזה של מידע מתוך מערך בעיצוב, זה לא קשור ל MVC,
זה סתם טכניקה,
יש מערכות צד3 כמו smarty ו savant לזה,
אני ממליץ קובץ PHP רגיל, עם משתנים שמועברים מהקונטרולר וזהו,
שיהיה בהצלחה
אני לא רוצה לעבוד עם מערכות צד 3 ...
אני אוהב לכתוב לבד . ככה אני יכול להתאים את זה במדיוק לצרכים של האתר שלי .
אני לא עובד עם קונטרולר . זה אתר מבוסס תכנות מונחה עצמים אבל ללא framework ...
אם אתה לא עובד עם קונטרולר, אז זה לא MVC,
ואם לא MVC, אז מה זה הדבר הזה שניסית לעשות עכשיו?